
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">

<HTML>

<HEAD>
   <TITLE>mtxv_c</TITLE>
</HEAD>

<BODY style="color: rgb(0, 0, 0); background-color: rgb(255, 255, 255);">
<A name="TOP"></A>

<table style="text-align: left; margin-left: auto; margin-right: auto; width: 800px;"
 border="0" cellpadding="5" cellspacing="2">
  <tbody>
    <tr>
      <td style="background-color: rgb(153, 153, 153); vertical-align: middle; text-align: center;">
      <div align="right"> 
      <small><small><a href="index.html">Index Page</a></small></small>
      </div>
      <b>mtxv_c</b> </td>
    </tr>

    <tr>
      <td style="vertical-align: top;">

<small><div align="center">
<A HREF="index.html#A">A</A>&nbsp;
<A HREF="index.html#B">B</A>&nbsp;
<A HREF="index.html#C">C</A>&nbsp;
<A HREF="index.html#D">D</A>&nbsp;
<A HREF="index.html#E">E</A>&nbsp;
<A HREF="index.html#F">F</A>&nbsp;
<A HREF="index.html#G">G</A>&nbsp;
<A HREF="index.html#H">H</A>&nbsp;
<A HREF="index.html#I">I</A>&nbsp;
<A HREF="index.html#J">J</A>&nbsp;
<A HREF="index.html#K">K</A>&nbsp;
<A HREF="index.html#L">L</A>&nbsp;
<A HREF="index.html#M">M</A>&nbsp;
<A HREF="index.html#N">N</A>&nbsp;
<A HREF="index.html#O">O</A>&nbsp;
<A HREF="index.html#P">P</A>&nbsp;
<A HREF="index.html#Q">Q</A>&nbsp;
<A HREF="index.html#R">R</A>&nbsp;
<A HREF="index.html#S">S</A>&nbsp;
<A HREF="index.html#T">T</A>&nbsp;
<A HREF="index.html#U">U</A>&nbsp;
<A HREF="index.html#V">V</A>&nbsp;
<A HREF="index.html#W">W</A>&nbsp;
<A HREF="index.html#X">X</A>&nbsp;
</div></small>
       <br>
       <table style="text-align: left; width: 60%; margin-left: auto; margin-right: auto;"
       border="0" cellspacing="2" cellpadding="2">
        <tbody>
          <tr>
            <td style="width: 50%; text-align: center;">
            <small>
              <a href="#Procedure">Procedure<br></a>
              <a href="#Abstract">Abstract<br></a>
              <a href="#Required_Reading">Required_Reading<br></a>
              <a href="#Keywords">Keywords<br></a>
              <a href="#Brief_I/O">Brief_I/O<br></a>
              <a href="#Detailed_Input">Detailed_Input<br></a>

              </small>
              </td>
              <td style="vertical-align: top; width: 50%; text-align: center;">
              <small>               <a href="#Detailed_Output">Detailed_Output<br></a>
              <a href="#Parameters">Parameters<br></a>
              <a href="#Exceptions">Exceptions<br></a>
              <a href="#Files">Files<br></a>
              <a href="#Particulars">Particulars<br></a>
              <a href="#Examples">Examples<br></a>

              </small>
              </td>
              <td style="vertical-align: top; width: 50%; text-align: center;">
              <small>               <a href="#Restrictions">Restrictions<br></a>
              <a href="#Literature_References">Literature_References<br></a>
              <a href="#Author_and_Institution">Author_and_Institution<br></a>
              <a href="#Version">Version<br></a>
              <a href="#Index_Entries">Index_Entries<br></a>
             </small>
            </td>
          </tr>
        </tbody>
</table>

<h4><a name="Procedure">Procedure</a></h4>
<PRE>
   void mtxv_c ( ConstSpiceDouble     m1  [3][3],
                 ConstSpiceDouble     vin [3],
                 SpiceDouble          vout[3]   )

</PRE>
<h4><a name="Abstract">Abstract</a></h4>
<PRE>
   <b>mtxv_c</b> multiplies the transpose of a 3x3 matrix on the left with
   a vector on the right.
</PRE>
<h4><a name="Required_Reading">Required_Reading</a></h4>
<PRE>
   None.
</PRE>
<h4><a name="Keywords">Keywords</a></h4>
<PRE>
   VECTOR,  MATRIX


</PRE>
<h4><a name="Brief_I/O">Brief_I/O</a></h4>
<PRE>
   VARIABLE  I/O              DESCRIPTION
   --------  ---  --------------------------------------------------
   m1         I   3x3 double precision matrix.
   vin        I   3-dimensional double precision vector.
   vout       O   3-dimensional double precision vector. vout is
                  the product m1**t * vin.
</PRE>
<h4><a name="Detailed_Input">Detailed_Input</a></h4>
<PRE>
   m1         is an arbitrary 3x3 double precision matrix.
              typically, m1 will be a rotation matrix since
              then its transpose is its inverse (but this is NOT
              a requirement).

   vin        is an arbitrary 3-dimensional double precision
              vector.
</PRE>
<h4><a name="Detailed_Output">Detailed_Output</a></h4>
<PRE>
   vout       is a 3-dimensional double precision vector. vout is
              the product vout = (m1**t)  x (vin). vout can
              overwrite vin.
</PRE>
<h4><a name="Parameters">Parameters</a></h4>
<PRE>
   None.
</PRE>
<h4><a name="Exceptions">Exceptions</a></h4>
<PRE>
   Error free.
</PRE>
<h4><a name="Files">Files</a></h4>
<PRE>
   None.
</PRE>
<h4><a name="Particulars">Particulars</a></h4>
<PRE>
   The intermediate results of the operation performed by this routine
   are buffered in a temporary vector which is later moved to the output
   vector.  Thus vout can be actually vin if desired without
   interfering with the computation.
</PRE>
<h4><a name="Examples">Examples</a></h4>
<PRE>
   Typically the matrix m1 will be a rotation matrix.  Because
   the transpose of an orthogonal matrix is equivalent to its
   inverse, applying the rotation to the vector is accomplished by
   multiplying the vector by the transpose of the matrix.

          -1
   let  m1   * vin = vout. If m1 is an orthogonal matrix,
   then  (m1**t) * vin = vout.


      If m1 = |  1.  1.  0. |   and  vin = |  5. |
              |             |              |     |
              | -1.  1.  0. |              | 10. |
              |             |              |     |
              |  0.  0.  1. |              | 15. |


   then the call

      <b>mtxv_c</b> ( m1, vin, vout )

   produces the vector


      vout = | -5. |
             |     |
             | 15. |
             |     |
             | 15. |
</PRE>
<h4><a name="Restrictions">Restrictions</a></h4>
<PRE>
   The user is responsible for checking the magnitudes of the
   elements of m1 and vin so that a floating point overflow does
   not occur.
</PRE>
<h4><a name="Literature_References">Literature_References</a></h4>
<PRE>
   None.
</PRE>
<h4><a name="Author_and_Institution">Author_and_Institution</a></h4>
<PRE>
   E.D. Wright     (JPL)
   W.M. Owen       (JPL)
</PRE>
<h4><a name="Version">Version</a></h4>
<PRE>
   -CSPICE Version 1.0.1, 10-NOV-2006   (EDW)

      Added Parameters section header. 

   -CSPICE Version 1.0.0, 16-APR-1999 (EDW)
</PRE>
<h4><a name="Index_Entries">Index_Entries</a></h4>
<PRE>
   matrix_transpose times 3-dimensional vector
</PRE>
<h4>Link to routine mtxv_c source file <a href='../../../src/cspice/mtxv_c.c'>mtxv_c.c</a> </h4>

      </td>
    </tr>
  </tbody>
</table>

   <pre>Wed Jun  9 13:05:26 2010</pre>

</body>
</html>

